how a c program works